/*
 *    ____    _                        __     _      _____
 *   / ___\  /_\     /\/\    /\ /\    /__\   /_\     \_   \
 *   \ \    //_\\   /    \  / / \ \  / \//  //_\\     / /\/
 * /\_\ \  /  _  \ / /\/\ \ \ \_/ / / _  \ /  _  \ /\/ /_
 * \____/  \_/ \_/ \/    \/  \___/  \/ \_/ \_/ \_/ \____/
 *
 * Copyright Samurai development team and other contributors
 *
 * http://www.samurai-framework.com
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

html {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementHtml';
}

head {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

title {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

meta {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

base {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

link {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

style {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

script {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

body {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementBody';
}

element {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementElement';
}

template {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementTemplate';
}

article {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementArticle';
}

aside {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementAside';
}

div {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementDiv';
}

footer {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementFooter';
}

header {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementHeader';
}

hgroup {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementHgroup';
}

main {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementMain';
}

nav {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementNav';
}

section {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementSection';
}

span {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementSpan';
}

dir {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementDir';
}

ul {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementUl';
}

ol {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementOl';
}

li {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementLi';
}

dl {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementDl';
}

dt {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementDt';
}

dd {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementDd';
}

table {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementTable';
}

caption {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementCaption';
}

thead {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementThead';
}

tbody {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementTbody';
}

tfoot {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementTfoot';
}

tr {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementTr';
}

td {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementTd';
}

th {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementTh';
}

col {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementCol';
}

colgroup {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementColgroup';
}

form {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementForm';
}

fieldset {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementFieldset';
}

legend {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementLegend';
}

keygen {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

menu {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

menuitem {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

button {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementButton';
}

canvas {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementCanvas';
}

datalist {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementDatalist';
}

img, image {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementImg';
}

input, input[type="text"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Text';
}

input[type="button"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Button';
}

input[type="checkbox"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Checkbox';
}

input[type="file"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_File';
}

input[type="hidden"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Hidden';
}

input[type="image"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Image';
}

input[type="password"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Password';
}

input[type="radio"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Radio';
}

input[type="reset"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Reset';
}

input[type="submit"] {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementInput_Submit';
}

label {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementLabel';
}

output {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementOutput';
}

progress {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementProgress';
}

select {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementSelect';
}

optgroup {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

option {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

textarea {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementTextarea';
}

time {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementTime';
}

meter {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementMeter';
}

h1 {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementH1';
}

h2 {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementH2';
}

h3 {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementH3';
}

h4 {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementH4';
}

h5 {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementH5';
}

h6 {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementH6';
}

hr {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementHr';
}

a {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

b {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

i {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

q {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

u {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

wbr {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

abbr {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

address {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

acronym {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

code {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementCode';
}

strong {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

small {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

big {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

del {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

ins {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

s, strike {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

rp {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

rt {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

ruby {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

em {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

tt {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

cite {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

dfn {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

kbd {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

samp {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

var {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

mark {
	-samurai-view-hierarchy: 'branch';
	-samurai-view-class: 'UIView';
}

sub {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementSub';
}

sup {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementSup';
}

basefont {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

font {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

bdi {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

bdo {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

br {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementBr';
}

blockquote {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementBlockquote';
}

p {
	-samurai-view-hierarchy: 'tree';
	-samurai-view-class: 'SamuraiHtmlElementP';
}

pre {
	-samurai-view-hierarchy: 'leaf';
	-samurai-view-class: 'SamuraiHtmlElementPre';
}

figcaption {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

figure {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

details {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

summary {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

area {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

map {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

frame {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

frameset {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

iframe {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

noframes {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

noscript {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

dialog {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

object {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

param {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

audio {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

source {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

video {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

track {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

applet {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

command {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}

embed {
	-samurai-view-hierarchy: 'hidden';
	-samurai-view-class: 'UIView';
}
